package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.Basket;
import cn.com.dcsgo.dto.BasketDTO;
import cn.com.dcsgo.vo.CartMoneyVO;
import cn.com.dcsgo.vo.CartVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 针对表【basket(购物车)】的数据库操作Service
 *
 * @author Dcsgo
 * @since 2025-11-14 15:09:22
 */
public interface BasketService extends IService<Basket> {

    /**
     * 获取购物车中商品数量
     *
     * @return 商品购买数量总和
     */
    Integer getProdTotal();

    /**
     * 添加或修改购物车中商品，可用于减少购物车中某一商品的购买数量
     *
     * @param basketDTO 购物项信息
     * @return true添加或修改成功，false添加或修改失败
     */
    boolean saveOrUpdate(BasketDTO basketDTO);

    /**
     * 获取购物车详细信息
     *
     * @param openid 会员ID
     * @return 购物车详细信息
     */
    CartVO getCartVO(String openid);

    /**
     * 获取购物车结算信息
     *
     * @param openid    会员Id
     * @param basketIds 购物项ID
     * @return 购物车结算信息
     */
    CartMoneyVO getCartMoneyVO(String openid, List<Long> basketIds);
}
